Dialing rule determining and application in a communication system

ABSTRACT

A call processing system for processing calls in a communications network comprising an interface configured to receive a message to register a device with a communications network, wherein the message indicates a device code associated with the device and a processing system configured to process the message to determine a directory code associated with the device based on the device code, process the directory code to determine an override dialing rule based on the directory code, and apply the override dialing rule to calls placed from the device.

RELATED APPLICATIONS

Not applicable

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not applicable

MICROFICHE APPENDIX

Not applicable

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention is related to the field of telecommunication services, andin particular, to a system that provides telephony services in acommunications network.

2. Description of the Prior Art

Telecommunication regulations require carriers to enforce dialing rules.For example, the Federal Communication Commission mandates the number ofdigits dialed from a particular phone based on the numbering plan area(NPA) of an NPA-NXX-XXXX formatted phone number. Users in a particularNPA may be required to dial all 10-digits of an NPA-NXX-XXXX phonenumber. Users in another NPA might be required to dial only 7 digits.

In wireless networks, dialing rules are determined based on a devicecode provided from a device to the network during registration. A mobilestation identifier (MSID) is an example of a device code, and a handsetis an example of a device. When a user powers on a handset, the handsetsends its MSID to a call processing system. A mobile switching center(MSC) is an example of a call processing system. An MSC uses the MSID todetermine what dialing rules to enforce for calls placed from thathandset. However, determining dialing rules based on the MSID has provenunreliable.

Directory codes from originating handsets could be used to determinedialing rules reliably. A phone number, or mobile directory number(MDN), is an example of a directory code. However, it is difficult forwireless carriers to obtain MDNs because handsets register with MSIDs,not MDNs. Additionally, carriers typically shield their customers' MDNsfrom other carriers.

SUMMARY OF THE INVENTION

An embodiment of the invention helps solve the above problems and otherproblems by basing dialing rules on MDNs. An embodiment of the inventionis a call processing system that comprises an interface and a processingsystem. The interface receives a message to register a device with thecommunications network. The message indicates a device code associatedwith the device. The processing system processes the message todetermine a directory code associated with the device code. Theprocessing system processes the directory code to determine an overridedialing rule based on the directory code. The processing system appliesthe override dialing rule to calls placed from the device.

In an embodiment of the invention, a default dialing rule applies tocalls placed from the device. Also, the processing system processes thedevice code to determine if the override dialing rule overrides thedefault dialing rule.

In an embodiment of the invention, the processing system overrides thedefault dialing rule with the override dialing rule if the device codeis within a range of codes.

In an embodiment of the invention, the directory code comprises a phonenumber.

In an embodiment of the invention, calls are placed from the device tophone numbers having a first portion and a second portion.

In an embodiment of the invention, the override dialing rule requires auser to dial the first portion of phone numbers for calls placed fromthe device.

In an embodiment of the invention, the phone numbers have anNPA-NXX-XXXX format and the first portion of the phone number comprisesthe NPA part of the NPA-NXX-XXXX format.

In an embodiment of the invention, the override dialing rule allows auser to dial only the second portion of the phone number for callsplaced from the device.

In an embodiment of the invention, the phone numbers have anNPA-NXX-XXXX format; the first portion comprises the NPA part; thesecond portion comprises the NXX-XXXX part of the NPA-NXX-XXXX format.

In an embodiment of the invention, the device comprises a wirelessdevice.

In an embodiment of the invention, a method of operating a callprocessing system comprises receiving a message to register a devicewith a communications network; processing the message to determine adirectory code associated with the device based on the device code;processing the directory code to determine an override dialing rulebased on the directory code; and, applying the override dialing rule tocalls placed from the device. The message indicates a device codeassociated with the device.

In an embodiment of the invention, a software product comprises acomputer-readable medium carrying one or more sequences of instructionsfor operating a call processing system wherein execution of the one ormore sequences of instructions by one or more processors causes the oneor more processors to receive a message to register a device with acommunications network; process the message to determine a directorycode associated with the device based on the device code; process thedirectory code to determine an override dialing rule based on thedirectory code; and, apply the override dialing rule to calls placedfrom the device. The message indicates a device code associated with thedevice.

BRIEF DESCRIPTION OF THE DRAWINGS

The same reference number represents the same element on all drawings.

FIG. 1 illustrates a communication system in an embodiment of theinvention.

FIG. 2 illustrates the operation of a communication system in anembodiment of the invention.

FIG. 3 illustrates a process flow in an embodiment of the invention.

FIG. 4 illustrates a communication system in an embodiment of theinvention.

FIG. 5 illustrates call processing tables in an embodiment of theinvention.

FIG. 6 illustrates the operation of a communication system in anembodiment of the invention.

FIG. 7 illustrates an embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIGS. 1-7 and the following description depict specific embodiments ofthe invention to teach those skilled in the art how to make and use thebest mode of the invention. For the purpose of teaching inventiveprinciples, some conventional aspects have been simplified or omitted.Those skilled in the art will appreciate variations from theseembodiments that fall within the scope of the invention. Those skilledin the art will appreciate that the features described below can becombined in various ways to form multiple embodiments of the invention.As a result, the invention is not limited to the specific embodimentsdescribed below, but only by the claims and their equivalents.

First Embodiment FIGS. 1-3

FIG. 1 illustrates communication system 100 in an embodiment of theinvention. Communication system 100 includes originating device 101,communications network 102, call processing system 103, and destinationdevice 104.

Originating device 101 is coupled to communications network 102.Communications network 102 is coupled to call processing system 103.Destination device 104 is coupled to communications network 102.

Originating device 101, and destination device 104, could be anycommunication device or collection of devices capable of communicatingor registering with communication network 102 or call processing system103. Communications network 102 could be any network or collection ofnetworks capable of communicating with device 101, call processingsystem 103, or device 104. Call processing system 103 could be anydevice or collection of devices capable of providing services to supporttelecommunications functionality, such as enforcement oftelecommunications regulations; and capable of communicating with orreceiving registration messages from communications network 102 ordevice 101.

FIG. 2 illustrates communication system 100 operation in an embodimentof the invention. Before being able to access services such as voicecalls, a user's device 101 must register with communication network 102.Device 101 could send a registration message to call processing system103 when a user powers on device 101. Though there are other events thattrigger device 101 to send a registration message, they will not bedetailed here in the interest of clarity. The registration message couldinclude a device code, which uniquely identifies device 101. The devicecode is transparent to the user.

Call processing system 103 is responsible for call controlfunctionality. Call control functionality includes call set-up, deviceregistration, and dialing rule enforcement. Using the device code fromthe registration message, call processing system 103 determines adefault dialing rule for device 101. A dialing rule is a restriction onhow directory codes must be dialed on device 101 when the user isplacing calls. A directory code is apparent to a user and identifies adevice to other devices.

Call processing system 103 determines whether the default dialing ruleis overridden by an override dialing rule. Override dialing rules arebased on the directory code for the device. The directory code isdetermined from the device code. Once the dialing rule is established,call processing system 103 could send a valid registration message todevice 101.

After receiving a valid registration message from call processing system103, the user can place calls to a destination device, such as device104. The user could dial a directory code to place a call from device101 to device 104. Device 101 could send the directory code in a callrequest to call processing system 103. If the user has dialed thedirectory number in accordance with the dialing rule for device 101,call processing system 103 could initiate call set-up processing withcommunications network 102, and a connection could be establishedbetween device 101 and device 104. If the user has dialed the directorynumber in violation of the dialing rule for device 101, call processingsystem 103 may reject the call attempt or send an error message todevice 101.

FIG. 3 illustrates call processing system 103 operation in an embodimentof the invention. Call processing system 103 receives from device 101 amessage to register device 101 with communications network 102. Themessage indicates a device code associated with device 101. The devicecode uniquely identifies device 101. (Step 301). Device 101 could send amessage to register the device in response to a number of triggeringevents, including a user powering on device 101, or when user places acall on device 101.

Call processing system 103 determines a directory code associated withdevice 101 based on the device code. (Step 302). A directory code isapparent to users and uniquely identifies device 101 to other devices.

Call processing system 103 determines a default dialing rule for callsplaced from device 101. The default dialing rule is based on the devicecode. Call processing system 103 determines whether an override dialingrule overrides the default dialing rule. (Step 303). The overridedialing rule is based on the directory code. A dialing rule establisheshow a user must dial directory codes for calls placed from device 101.

Once the dialing rule is established, a user can place calls from device101 to a destination device such as device 104. Call processing system103 applies the dialing rule to calls placed from device 101. (Step304). Call processing system 103 may initiate set-up with communicationsnetwork 102 for calls dialed in accordance with the dialing rule. Callprocessing system 103 may send an error message to device 101 for callsplaced from device 101 not in accordance with the dialing rule.

In an advantage, a call processing system can apply override dialingrules to devices without requiring a device to indicate a directory codein a message to register the device. The call processing systemdetermines a default dialing rule using a device code. If an overridedialing rule applies to calls placed from the device, the callprocessing system determines a directory code associated with the devicecode, and in turn, determines the override dialing rule using thedirectory code. Call processing systems can enforce telecommunicationsregulations without requiring carriers to divulge their customers'directory codes.

Second Embodiment FIGS. 4-6

FIG. 4 illustrates communication system 400 in an embodiment of theinvention. Communication system 400 includes Device 401, CommunicationsNetwork 402, Call Processing System 403, Default data structure 404,Virtual Location Register (VLR) data structure 405, Host LocationRegister (HLR) data structure 406, and Override data structure 407.

Device 401 is coupled to communications network 402. Communicationsnetwork 402 is coupled to call processing system 403. Call processingsystem 403 is coupled to Default data structure 404, VLR data structure405, HLR data structure 406, and Override data structure 407. Examplesof data structures include databases, database records, arrays, andtables.

Device 401 could be any communication device or collection of devicescapable of communicating or registering with communications network 402or call processing system 403. Communications network 402 could be anynetwork or collection of networks capable of communicating with device401, or call processing system 403. Call processing system 403 could beany device or collection of devices capable of providing services tosupport telecommunications, enforcement of telecommunicationregulations, and communicating with or receiving registration messagesfrom communications network 402 or device 401. Default data structure404 could be any data structure capable of indicating a relationshipbetween a device code and a default dialing rule. VLR data structure 405could be any data structure capable of indicating a relationship betweendevice 401 and a device code. VLR data structure 405 stores informationabout all devices currently registered for call processing system 403.HLR data structure 406 could be any data structure capable of indicatinga relationship between a device code and a directory code. HLR datastructure 406 stores information about every device with a device codethat is authorized to use communications network 402. Those skilled inthe art appreciate VLR data structure 405 and HLR data structure 406.Override data structure 407 could be any data structure capable ofindicating a relationship between a directory code and an overridedialing rule.

FIG. 5 illustrates call processing tables in an embodiment of theinvention. Call processing table 501 illustrates an embodiment ofDefault data structure 404. Call processing table 502 illustrates anembodiment of Override data structure 407.

Call processing table 501 provides a default dialing rule for a deviceassociated with a device code, and an indicator as to whether anoverride dialing rule applies to calls placed from the device. Callprocessing table 502 provides an override dialing rule associated with adirectory code. The override dialing rule overrides the default dialingrule for calls placed from the device associated with the directorycode.

Call processing table 501 could comprise 3 fields and 3 entries. Thefields could comprise device code, override, and default dialing rule.The first entry could comprise a device code of 1234, an overrideindicator of ‘Y’, and a default dialing rule of ‘2ND PORTION ONLY.’ Thesecond entry could comprise a device code of 4321, an override indicatorof ‘N’, and a default dialing rule of ‘2ND PORTION ONLY.’ The thirdentry could comprise a device code of 8765, an override indicator of‘Y’, and a default dialing rule of ‘1ST AND 2ND PORTION.’

Call processing table 502 could comprise 2 fields and 3 entries. Thefields could comprise directory code and override dialing rule. Thefirst entry could comprise a directory code of 2225551212, and anoverride dialing rule of ‘2ND PORTION ONLY.’ The second entry couldcomprise a directory code of 3335551212, and an override dialing rule of‘1ST AND 2ND PORTION.’ The third entry could comprise a directory codeof 1115551212, and an override dialing rule of ‘2ND PORTION ONLY.’

In an example, a user could place a call on a device with a device codeof 1234. Call processing system 403 queries call processing table 501which indicates the device has an override dialing rule. Call processingtable 501 also indicates a default dialing rule of ‘2ND PORTION ONLY.’Call processing system 403 stores the default dialing rule in VLR datastructure 405, and determines a directory code of 3335551212 for devicecode 1234 in a query of HLR data structure 406. Call processing system403 then queries Override data structure 407 and determines the overridedialing rule is ‘1ST AND 2ND PORTION.’ Call processing system 403replaces the default dialing rule with the override dialing rule in VLRdata structure 405. When calls are placed from the device with thedirectory code 3335551212, call processing system 403 requires the userto dial the first and second portion of the directory code for thedestination device. In an example, the first portion is the NPA and thesecond portion is the NXX-XXXX of a directory code in the NPA-NXX-XXXXformat.

In an example, a user could place a call on a device with a device codeof 4321. Call processing system 403 queries call processing table 501which indicates no override dialing rule for device code 4321. Callprocessing table 501 also indicates a default dialing rule of ‘2NDPORTION ONLY.’ Call processing system stores the default dialing rule inVLR data structure 405. When calls are placed from the device with thedevice code 4321, call processing system 403 requires the user to dialonly the second portion of the directory code for the destinationdevice. In an example, the second portion of the directory code is theNXX-XXXX of a directory code in the NPA-NXX-XXXX format.

FIG. 6 illustrates communications system 400 operation in an embodimentof the invention. Before accessing voice call services, a user's device401 could register with communication network 402. Device 401 could senda registration message indicating a device code to call processingsystem 403 when a user powers on device 401. Other events could triggerdevice 401 to send a registration message, though they are not detailedhere in the interest of clarity. The registration message could includea device code, which uniquely identifies device 401. A device code istransparent to the user.

Call processing system 403 controls call functionality. Callfunctionality includes call set-up, device registration, and dialingrule enforcement. Using the device code from the registration message,call processing system 403 could send a query message to Default datastructure 404. Default data structure 404 could return a default dialingrule to call processing system 403. A dialing rule is a restriction onhow directory codes must be dialed on device 401 when the user isplacing calls. A directory code is apparent to a user and identifies adevice to other devices.

Call processing system 403 could send a store message to VLR datastructure 405 indicating the default dialing rule for device 401. VLRdata structure 405 could record the default dialing rule for device 401.When the user places calls over device 401, VLR data structure 405 canbe queried for the dialing rule to be applied to calls placed overdevice 401.

After call processing system 403 sends the store message to VLR datastructure 405, call processing system 403 could send a query message toHLR data structure 406 indicating the device code for device 401. If adirectory code is not associated with the device code for device 401,HLR data structure 406 could return no directory code to call processingsystem 403. A directory code is not required for valid registration fordevice 401. Call processing system 403 could then return a messageindicating valid registration to device 401. If a directory code is notassociated with the device code for device 401 in HLR data structure406, the default dialing rule will be applied to calls placed fromdevice 401.

If a directory code is associated with the device code for device 401,HLR data structure 406 could return a directory code for device 401 tocall processing system 403. Call processing system 403 could then send aquery message to Override data structure 407 indicating the directorycode for device 401. Override data structure 407 maintains relationshipsbetween directory codes and override dialing rules. An override dialingrule takes precedence over the default dialing rule for device 401. Ifan override dialing rule is not associated with the directory code,Override data structure 407 could return no override dialing rule tocall processing system 403. An override dialing rule is not required forvalid registration of device 401. Call processing system 403 could thensend a valid registration message to device 401.

If an override dialing rule is associated with the directory code fordevice 401, Override data structure 407 could return the overridedialing rule for device 401 to call processing system 403. Callprocessing system 403 could then send a store message to VLR datastructure 405 indicating the override dialing rule for device 401. VLRdata structure 405 could replace the default dialing rule for device 401with the override dialing rule for device 401. Call processing system403 could then send a valid registration message to device 401.

After device 401 receives a valid registration message from callprocessing system 403, the user can use device 401 to place calls. Ifthe user dials a directory code to place a call from device 401, device401 could send a call message to call processing system 403. Callprocessing system 403 could then send a query message to VLR datastructure 405 indicating the device code for device 401. VLR datastructure 405 could return the dialing rule for device 401 to callprocessing system 403. Call processing system 403 could then apply thedialing rule to the directory code the user dialed from device 401. Ifthe user has dialed the directory number in violation of the dialingrule for device 401, call processing system 403 may send an errormessage to device 401. If the user has dialed the directory number inaccordance with the dialing rule for device 401, call processing system403 could initiate call set-up for device 401.

In an advantage, a call processing system determines an override dialingrule for a device with a registration message and a call requestindicating only a device code. A call processing system determines adirectory code associated with the device code, and in turn, determinesan override dialing rule associated with the directory code. Callprocessing systems can enforce telecommunications regulations withoutrequiring carriers to divulge their customers' directory codes.

Call Processing System—FIG. 7

FIG. 7 illustrates call processing system 700 in an embodiment of theinvention. Call processing system 700 includes interface 701, processingsystem 702, storage system 703, and software 704. Storage system 703stores software 704. Processing system 702 is linked to interface 701.Call processing system 700 could be comprised of a programmedgeneral-purpose computer, although those skilled in the art willappreciate that programmable or special purpose circuitry and equipmentmay be used. Call processing system 700 may use a client serverarchitecture where operations are distributed among a server system andclient devices that together comprise elements 701-604.

Interface 701 could comprise a network interface card, modem, port, orsome other communication device. Interface 701 may be distributed amongmultiple communication devices. Processing system 702 could comprise acomputer microprocessor, logic circuit, or some other processing device.Processing system 702 may be distributed among multiple processingdevices. Storage system 703 could comprise a disk, tape, integratedcircuit, server, or some other memory device. Storage system 703 may bedistributed among multiple memory devices.

Processing system 702 retrieves and executes software 704 from storagesystem 703. Software 704 may comprise an operating system, utilities,drivers, networking software, and other software typically loaded onto ageneral-purpose computer. Software 704 could also comprise anapplication program, firmware, or some other form of machine-readableprocessing instructions. When executed by the processing system 702,software 704 directs processing system 702 to operate as described abovefor call processing systems 103 and 403.

What is claimed is:
 1. A call processing system for processing calls ina communications network, the call processing system comprising: aninterface configured to receive from a device a message to register thedevice with the communications network, wherein the message indicates amobile station identifier associated with the device; and a processingsystem configured to process the message to determine a phone numberassociated with the device based on the mobile station identifier,process the phone number to determine if an override dialing ruleapplies, wherein if the override dialing rule applies, process the phonenumber to determine the override dialing rule based on the phone number,and apply the override dialing rule to calls placed from the device. 2.The call processing system of claim 1 wherein a default dialing ruleapplies to the calls placed from the device, and wherein the processingsystem is further configured to process the mobile station identifier todetermine if the override dialing rule overrides the default dialingrule based on the mobile station identifier.
 3. The call processingsystem of claim 2 wherein the processing system is further configured tooverride the default dialing rule with the override dialing rule if themobile station identifier is within a range of mobile stationidentifiers.
 4. The call processing system of claim 1 wherein a defaultdialing rule applies to the calls placed from the device, and wherein ifthe override dialing rule does not apply, the processing system isfurther configured to apply the default dialing rule to calls placedfrom the device.
 5. The call processing system of claim 3 wherein thecalls are placed from the device to phone numbers having a first portionand a second portion.
 6. The call processing system of claim 5 whereinthe override dialing rule requires a user to dial the first portion forthe calls placed from the device.
 7. The call processing system of claim6 wherein the phone numbers have an NPA-NXX-XXXX format and wherein thefirst portion comprises the NPA part of the NPA-NXX-XXXX format andwherein the second portion comprises the NXX-XXXX part of theNPA-NXX-XXXX format.
 8. The call processing system of claim 5 whereinthe override dialing rule allows a user to dial only the second portionfor the calls placed from the device.
 9. The call processing system ofclaim 8 wherein the phone numbers have an NPA-NXX-XXXX format andwherein the first portion comprises the NPA part of the NPA-NXX-XXXXformat and wherein the second portion comprises the NXX-XXXX part of theNPA-NXX-XXXX format.
 10. The call processing system of claim 1 whereinthe device comprises a wireless device.
 11. A method of operating a callprocessing system, the method comprising: receiving a message toregister a device with a communications network, wherein the messageindicates a mobile station identifier associated with the device;processing the message to determine a phone number associated with thedevice based on the mobile station identifier; processing the phonenumber to determine if an override dialing rule applies, wherein if theoverride dialing rule applies, processing the phone number to determinethe override dialing rule based on the phone number, and applying theoverride dialing rule to calls placed from the device.
 12. The method ofclaim 11, wherein a default dialing rule applies to the calls placedfrom the device, and where the method further comprises: processing themobile station identifier to determine if the override dialing ruleoverrides the default dialing rule based on the mobile stationidentifier.
 13. The method of claim 12 wherein the default dialing ruleis overridden with the override dialing rule if the mobile stationidentifier is within a range of mobile station identifiers, and wherethe method further comprises: applying the override dialing rule tocalls placed from the device.
 14. The method of claim 11 wherein adefault dialing rule applies to the calls placed from the device, andwherein if the override dialing rule does not apply, the method furthercomprises: applying the default dialing rule to calls placed from thedevice.
 15. The method of claim 13 wherein the calls are placed from thedevice to phone numbers having a first portion and a second portion. 16.The method of claim 15 wherein the override dialing rule requires a userto dial the first portion for the calls placed from the device.
 17. Themethod of claim 16 wherein the phone numbers have an NPA-NXX-XXXX formatand wherein the first portion comprises the NPA part of the NPA-NXX-XXXXformat and wherein the second portion comprises the NXX-XXXX part of theNPA-NXX-XXXX format.
 18. The method of claim 15 wherein the overridedialing rule allows a user to dial only the second portion for the callsplaced from the device.
 19. The method of claim 18 wherein the phonenumbers have an NPA-NXX-XXXX format and wherein the first portioncomprises the NPA part of the NPA-NXX-XXXX format and wherein the secondportion comprises the NXX-XXXX part of the NPA-NXX-XXXX format.
 20. Themethod of claim 11 wherein the device comprises a wireless device.
 21. Asoftware product comprising: a non-transitory computer-readable mediumcarrying one or more sequences of instructions for operating a callprocessing system wherein execution of the one or more sequences ofinstructions by one or more processors causes the one or more processorsto: receive a message to register a device with a communicationsnetwork, wherein the message indicates a mobile station identifierassociated with the device; process the message to determine a phonenumber associated with the device based on the mobile stationidentifier; process the phone number to determine if an override dialingrule applies, wherein if the override dialing rule applies process thephone number to determine the override dialing rule based on the phonenumber, and apply the override dialing rule to calls placed from thedevice.
 22. The software product of claim 21 wherein a default dialingrule applies to the calls placed from the device, and where execution ofthe one or more sequence of instructions by the one or more of theprocessors cause the one or more processors to further: process themobile station identifier to determine if the override dialing ruleoverrides the default dialing rule based on the mobile stationidentifier.
 23. The software product of claim 22 wherein the defaultdialing rule is overridden with the override dialing rule if the mobilestation identifier is within a range of mobile station identifiers, andwhere execution of the one or more sequence of instructions by the oneor more of the processors cause the one or more processors to further:apply the override dialing rule to calls placed from the device.
 24. Thesoftware product of claim 21 wherein a default dialing rule applies tothe calls placed from the device, and wherein if the override dialingrule does not apply, the execution of the one or more sequence ofinstructions by the one or more of the processors cause the one or moreprocessors to further: apply the default dialing rule to calls placedfrom the device.
 25. The software product of claim 23 wherein the callsare placed from the device to phone numbers having a first portion and asecond portion.
 26. The software product of claim 25 wherein theoverride dialing rule requires a user to dial the first portion for thecalls placed from the device.
 27. The software product of claim 26wherein the phone numbers have an NPA-NXX-XXXX format and wherein thefirst portion comprises the NPA part of the NPA-NXX-XXXX format andwherein the second portion comprises the NXX-XXXX part of theNPA-NXX-XXXX format.
 28. The software product of claim 25 wherein theoverride dialing rule allows a user to dial only the second portion forthe calls placed from the device.
 29. The software product of claim 28wherein the phone numbers have an NPA-NXX-XXXX format and wherein thefirst portion comprises the NPA part of the NPA-NXX-XXXX format andwherein the second portion comprises the NXX-XXXX part of theNPA-NXX-XXXX format.
 30. The software product of claim 21 wherein thedevice comprises a wireless device.